package com.woniuxy.mapper;

import com.woniuxy.entity.Courier;
import com.woniuxy.entity.DTO.CourierDTO;
import com.woniuxy.entity.DTO.DeliveryOrderDTO;
import com.woniuxy.entity.DTO.PerformanceDTO;

import java.util.List;

/**
* @author PC
* @description 针对表【courier（配送人员信息表）】的数据库操作Mapper
* @createDate 2025-05-12 16:49:48
* @Entity com.woniuxy.entity.Courier
*/
public interface CourierMapper {

    /**
     * 查询所有的配送员的id和name
     */
    List<CourierDTO> queryCourierDTO();

    /**
     * 修改配送员对应的仓库id(参数1：配送员id；参数2：对应的仓库id)
     */
    Integer updateCourierById(Integer id,Integer warehouseId);

    /**
     * 查询对应仓库下的骑手
     */
    List<CourierDTO> queryCourierDTOByWarehouseId(Integer warehouseId);

    /**
     * 通过名称模糊查询对应的骑手
     */
    List<CourierDTO> queryRiderByName(String riderName,Integer warehouseId);

    /**
     * 解除骑手的绑定仓库
     */
    void riderUnbind(Integer id);

    /**
     * 查询对应的账号是否存在
     */
    boolean queryCourierByAccount(String courierAccount);

    /**
     * 注册配送员账号
     */
    boolean register(CourierDTO courierDTO);

    /**
     * 通过账号来查找密码
     */
    CourierDTO queryPasswordByAccount(String courierAccount);

    /**
     * 通过id来查询账号信息
     */
    CourierDTO queryProfileById(Integer userId);

    /**
     * 修改密码
     */
    boolean updatePasswordById(Integer id,String newPassword);

    /**
     * 获取仓库下所有可接取的订单
     */
    List<DeliveryOrderDTO> queryAvailableOrders(Integer warehouseId);

    /**
     * 接取订单
     */
    Integer receiveOrder(String orderId, Integer courierId);

    /**
     * 查询当前配送员接取的订单
     */
    List<DeliveryOrderDTO> queryMyOrders(Integer courierId);

    /**
     * 完成配送订单
     */
    boolean completeOrder(String orderId);

    /**
     *查询业绩
     */
    List<PerformanceDTO> queryPerformance(Integer userId);

    /**
     * 查询当月业绩
     */
    List<PerformanceDTO> queryMonthPerformance(Integer userId);

    /**
     * 向配送信息表插入数据
     */
    Integer insertCourierInfo(String orderId,Integer warehouseId);

    void imgLoad(Integer id,String imgSrc);
}
